<?php
/*图片处理——缩放图片*/
function thumb($maxfile,$minw,$minh,$minsrc){
	/*参数说明：
	*$maxfile —— 原始图片路径名称
	*$minw —— 生成图片的宽度
	*$minh —— 生成图片的高度
	*$minsrc —— 生成图片存放的路径
	*/

	$imgfile=$maxfile; //图片路径

	// 获取大图尺寸
	$imgarr=getimagesize($imgfile); //图片信息
	$maxw=$imgarr[0]; //宽
	$maxh=$imgarr[1]; //高
	$maxt=$imgarr[2]; ////图片后缀
	$maxm=$imgarr['mime']; //图片类型

	// 根据图片类型，定义不同的函数
	switch ($maxt) {
		case 1:
			$imagein="imagecreatefromgif"; //输入
			$imageout="imagegif"; //输出
			break;
			case 2:
			$imagein="imagecreatefromjpeg";
			$imageout="imagejpeg";
			break;
			case 3:
			$imagein="imagecreatefrompng";
			$imageout="imagepng";
			break;
	}

	// 大图资源，由文件或 URL 创建一个新图象
	$maxim=$imagein($imgfile);

	// 小图宽高
	$minw=$minw; //宽
	$minh=$minh; //高

	// 等比例缩放,两者相等时候才等比，否则以小的一方为参照等比
	if(($minw/$maxw)>($minh/$maxh)){
		$ratio=$minh/$maxh;
	}else{
		$ratio=$minw/$maxw;
	}
	// 小图等比例宽高
	$minw=floor($maxw*$ratio);
	$minh=floor($maxh*$ratio);

	// 小图资源
	$minim=imagecreatetruecolor($minw,$minh);

	// 把大图缩放成小图
	imagecopyresampled($minim, $maxim, 0, 0, 0, 0, $minw, $minh, $maxw, $maxh);

	// 小图输出
	header("content-type:{$maxm}");
	// $imageout($minim); //输出图象到浏览器或文件,变量函数

	// 将小图进行保存
	// 判断原始图片路径中是否存在 '/',获取图片名称
	$is_exist=is_int(strpos($imgfile,'/'));
	if($is_exist){
		$imgname=trim(strrchr($imgfile,'/'),'/');
	}else{
		$imgname=$imgfile;
	}
	$minfilename=$minsrc."s_".$imgname; //小图名称，存放路径+名称+后缀名
	$imageout($minim,$minfilename);

	// 释放大小图资源
	imagedestroy($maxim);
	imagedestroy($minim);
}

thumb('../img/2.png',60,90,'../img/');
?>